<?php

class formula {
    
    static function formulainstituicao() {
        return  array(
                    ''  => '',
                    '1' => 'Média ponderada', // MUPF = {Σ(NA x P) / Σ(NQ x P)} x 10
                );
    }
    static function getFormulainstituicao($op = ''){
        if($op == '') return '';
        $ele = self::formulainstituicao();
        return $ele[$op];
    }    
    
    static function executarFormula($op = '',$arr = 0) {
        $resultado = '';
        
        if($op == ''){
            $resultado = self::formula0($arr);
        } else if($op == 1){
            $resultado = self::formula1($arr);
        }
        
        return $resultado;
    }
    
    // formulas function: formula + numero domineo($arr)
    
    static function formula0($arr = 0) {
        
        Zend_Loader::loadClass('tools','library');
        
        $resultado = 0;
        $NA = 0;
        $NQ = 0;
        if(count($arr) > 1){
            foreach($arr as $a){
                //$resultado += ($a['NA']) / $a['NQ']; // ($a['NA'] * $a['P']) / $a['NQ']  
                $NA += $a['NA'];
                $NQ += $a['NQ'];
            }
            $resultado = $NA / $NQ;
            $resultado = $resultado * 10;
        }
        return $resultado;
    }
    
    static function formula1($arr = 0) {
        Zend_Loader::loadClass('tools','library');
        
        // $arr = array( 1 => array('NA' => 0,'NQ' => 0,'P' => 0) );
        /*
        MUPF = {Σ(NA x P) / Σ(NQ x P)} x 10
        Onde:
            MUPF = média ponderada das provas da UPF 
            NA = número de acertos por matéria nas provas
            NQ = número de questões das matérias 
            P = peso da matéria no curso
        */
        $MUPF = 0;
        $NA = 0;
        $NQ = 0;
        if(count($arr) > 1){
            foreach($arr as $a){
                //$MUPF += ($a['NA'] * $a['P']) / ($a['NQ'] * $a['P']);
                $NA += $a['NA'] * $a['P'];
                $NQ += $a['NQ'] * $a['P'];
                
            }
            $MUPF = $NA / $NQ;
            $MUPF = $MUPF * 10;
        }
        return tools::trunc_valor($MUPF,4);
    }
    
}
